Поскольку процесс сборки контейнера начинается с merge pass, то вы не можете вмешаться в этот процесс через compiler pass, как это делается обычно, однако вы можете воспользоваться вот этим куском логики для того чтобы добиться своей цели
When loading a config file that uses an extension alias as a key, the extension must already have been registered with the container builder or an exception will be thrown.
то в приложении должен быть подключен bundle который будет их загружать
Vich\UploaderBundle\VichUploaderBundle::class => ['all' => true],
Liip\ImagineBundle\LiipImagineBundle::class => ['all' => true],
можно использовать и loader и любые другие механизмы, лишь бы только к моменту загрузки конфигурации через extension
$container->import('../config/{packages}/*.yaml');
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader->load('services.yml');
"type": "symfony-bundle",
...
"knplabs/knp-menu-bundle": "^2.2.2",
"sonata-project/block-bundle": "^3.18",
"sonata-project/core-bundle": "^3.18.0",
"symfony/framework-bundle": "^4.3",
"symfony/security-bundle": "^4.3",
"symfony/twig-bridge": "^4.3",
"symfony/twig-bundle": "^4.3",
"twig/extra-bundle": "^3.0",
Искал fos_user - нашел только ""framework", "twig", "twig_extra", ...