protected function configure(IConfig $config)
    {
        $configuration = $config->get('container');

        foreach ($configuration as $name => $group)
        {
            switch ($name)
            {
                case 'parameters':
                    $this->configureParameters($group);
                    break;

                case 'shared':
                    $this->configureShared($group);
                    break;

                case 'definitions':
                    $this->configureDefinitions($group);
                    break;

                case 'aliases':
                    $this->configureAliases($group);
                    break;

                case 'factories':
                    $this->configureFactories($group);
                    break;
            }
        }
    }