I find it ridiculous that MVC doesn\'t recognize a controller unless it has \'Controller\' appended to the class name. This answer mentions the ControllerDescriptor
Yes conventions are good, but I don't think this is a matter of convention. It's a matter of selecting a good name from the solution domain for the pattern one is using.
For example, if the UX of dealing with products involves a list then you can simply call the controller ProductList and it need not be confused with List. As human beings we easily disambiguate everyday based on context and naming in software should be no exception. Now the role of a controller is to coordinate. In the case of our ProductList. It will coordinate actions like ProductList.sort(byField), ProductList.delete(product).
As far as taking advantage of the the concept of convention over configuration, one can do that at a meta-level. In .Net one could use an attribute to identify a controller or a model.
What's the big deal? Stating the pattern in the name invites lazy naming and thus lazy modeling. A name is not just a name, it selects a concept that you're using to model the solution domain whose meaning drives decisions about what code represents that concept and what other code that code is coupled to. The more generic and/or ambiguous your names are the more you invite your design to be extended and changed in ways that are harder to maintain.