i don't see it. if we have request_listener but no dynamic router, we need to explode. if we do not have request_listener at all, we need to remove the service definition.

if you think its better, i can change this to 

        if (!$config['request_listener']) {
            $container->removeDefinition($this->getAlias() . '.publish_workflow.request_listener');
        } elseif (!class_exists('Symfony\Cmf\Bundle\RoutingBundle\Routing\DynamicRouter')) {
            throw new InvalidConfigurationException('The "publish_workflow.request_listener" may not be enabled unless "Symfony\Cmf\Bundle\RoutingBundle\Routing\DynamicRouter" is available.');
        }