EventDispatch implements the Mediator pattern, not the Observer pattern
Merge remote-tracking branch 'origin/2.2' into 2.2