EventDispatcher implements a lightweight version of the Observer design pattern. It's a clone of the well known Symfony EventDispatcher