Not sure what I was thinking, wanted to get rid of PHP magicy stuff and reintroduced it. RouteMatch objects now always returning a ControllerInterface implementation and thus calling typehinted execute() method instead of generic callable.