EventFilter - filtering events

A filter allows events to filtered before they are sent. This is can be more efficient than filtering the event in the listener.