@stof I'm sorry stof but I **strongly** disagree. The whole point of having an object-oriented service container is to be able to replace specific services with your own implementation that extends the base implementation if you have a very small change to make. **In fact, this is one of the main advantages of dependency injection**.

The use case above is a perfectly valid use case that happens all the time in software development. Forcing the user to copy-paste code into its own implementation to simply add a custom button type would be, IMHO, an idiotic design decision. Ping @fabpot