protected function process($filename, $uuid)
    {
        $configuration = $this->readFile($filename, $uuid);

        // The directives to execute and the fail-on-error status (true|false)
        $directives = array(
            self::DIRECTIVE_INCLUDE => false,
            self::DIRECTIVE_REQUIRE => true,
        );

        foreach ($directives as $directive => $strict) {
            $extracted = $this->extractDirectives($directive, $configuration);

            foreach ($extracted[1] as $index => $include) {
                $includeFilename = realpath(dirname($filename).DIRECTORY_SEPARATOR.$include);

                if ($includeFilename !== false) {
                    $content = $this->readFile($includeFilename);
                } elseif ($strict === false) {
                    $content = '{}';
                } else {
                    throw new Doozr_Configuration_Exception(
                        'The file "'.$filename.'" could not be included. Sure it exists?'
                    );
                }

                $configuration = str_replace(
                    '"'.$extracted[0][$index].'"',
                    //$extracted[0][$index],
                    $content,
                    $configuration
                );
            }
        }

        /*
         *
         * @todo RETRIEVE DOOZR CONSTANTS SO EXPENSIVE?
         *
         */

        // After executing directive like function calls
        $variables = array(
            'DOOZR_APP_ROOT' => str_replace('\\', '\\\\', DOOZR_APP_ROOT),
            'DOOZR_DOCUMENT_ROOT' => str_replace('\\', '\\\\', DOOZR_DOCUMENT_ROOT),
            'DOOZR_DIRECTORY_TEMP' => str_replace('\\', '\\\\', DOOZR_DIRECTORY_TEMP),
            'DOOZR_NAMESPACE_FLAT' => DOOZR_NAMESPACE_FLAT,
        );

        // Do default replacements
        foreach ($variables as $variable => $value) {
            $configuration = str_replace('{{'.$variable.'}}', $value, $configuration);
        }

        return $configuration;
    }