Up to now neither Dipatcher nor the middleware implementations call methods of the controller.
But I see your point from the middleware implementation point of view where the developer needs an interface to work with.

Actually the render method gave me some head aches in terms of what is the best approach api wise.
If we agree on supplying render() for templates we should do the same for renderJson().
Because from my point of view the controllers will return much more json then actual template rendering due to the nature of singel page javascript apps we aim to implement in the future.