$controller service is responsible for instantiating controllers.
If called with a function then it's considered to be the controller constructor function. Otherwise it's considered to be a string which is used to retrieve the controller constructor using the following steps:
Injection locals for Controller.
Instance of given controller.