We don't have to make Controllers actual Listeners and that is not a reflection of the EM in this PR.

An ActionController could implement a listener interface rather than extending it.

Personally for many years I actually modify the MVC frameworks to allow each action to be discrete individual controllers, it makes coding for that action a lot easier and clearer and I can clearly distinguish between read and write events for that action (aka crud/rest). And another real benefit is that it can make distinguishing the dependencies for that action a lot more efficient and also make it easier to create dedicated tests for.

There can be different Dispatch\Listeners depending on how you want the controllers in your application invoked. I'd be ok with implementing it old way (and then later on use my own Dispatch\Listener), the flexibility should be there for us to have a choice without having to cut into the core code.