<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_controller(self, key, controller):
 """Add child controller The passed controller is registered as child of self. The register_actions method of the child controller is called, allowing the child controller to register shortcut callbacks. :param key: Name of the controller (unique within self), to later access it again :param ExtendedController controller: Controller to be added as child """

        assert isinstance(controller, ExtendedController)
        controller.parent = self
        self.__child_controllers[key] = controller
        if self.__shortcut_manager is not None and controller not in self.__action_registered_controllers:
            controller.register_actions(self.__shortcut_manager)
            self.__action_registered_controllers.append(controller)