Прилетел контейнер в акшин контроллера через ContainerInterface, в нем есть MailerInterface на котором завязан общий мейлер приложения, ты хочешь передать этот контейнер в сервис, но переопределить мейлер, тогда ты делаешь контейнер с новым мейлеров, создаешь новый композитный контейнер и аттачишь туда контейнер с интерфейса и контейнер с переопределенным мейлером. Если надо еще в один сервис передать еще другой мейлер, то аналогично с новым композитным контейнером. Таким образом ты можешь ветвить контейнер не затрагивая основного. Та же фигня и в мидлтварях будет)