remove a hook from the controller and return it back if exists
hook
Hook<T>? unregisterHook(Hook<T> hook) => _hooks.remove(hook);