This class is mixed into both the TransitionService and every Transition object.
Global hooks are added to the TransitionService.
Since each Transition is itself a HookRegistry, hooks can also be added to individual Transitions
(note: the hook criteria still must match the Transition).