private function &_parseIncludes(__Configuration &$configuration, $basedir)
 {
     $configuration_section = $configuration->getSection('configuration');
     if ($configuration_section != null) {
         //read configuration directives before read other sections:
         $configuration_directives = $configuration_section->getSection('configuration-directives');
         if ($configuration_directives != null) {
             $this->_readConfigurationDirectives($configuration_directives);
         }
         //read the other sections:
         $sections = $configuration_section->getSections();
         foreach ($sections as $section) {
             switch (strtoupper($section->getName())) {
                 case 'INCLUDE':
                     $expression = $section->getProperty('#text')->getContent();
                     //finally, resolve the path:
                     $expression = __PathResolver::resolvePath($expression, $basedir);
                     if (__Lion::getInstance()->getRuntimeDirectives()->getDirective('DEBUG_MODE') && (strpos($expression, '...') !== false || strpos($expression, '*') !== false)) {
                         $this->_configuration_locators[$expression] = $expression;
                     }
                     $files_to_include = __FileResolver::resolveFiles($expression);
                     foreach ($files_to_include as $file_to_include) {
                         $included_configuration = $this->loadConfigurationFile($file_to_include);
                         $configuration->merge($included_configuration);
                         unset($included_configuration);
                     }
                     break;
             }
         }
     }
     return $configuration;
 }