Hooking decorator. Just `@hook(event, dependencies)` on your function

    Kwargs:
        event (str): String or Iterable with events to hook
        dependencies (str): String or Iterable with modules whose hooks have
        to be called before this one for **this** event

    Wraps :func:`EventList.hook`

def hook(event=None, dependencies=None):
    """Hooking decorator. Just `@hook(event, dependencies)` on your function

    Kwargs:
        event (str): String or Iterable with events to hook
        dependencies (str): String or Iterable with modules whose hooks have
        to be called before this one for **this** event

    Wraps :func:`EventList.hook`
    """

    def wrapper(func):
        """I'm a simple wrapper that manages event hooking"""
        func.__deps__ = dependencies
        EVENTS.hook(func, event, dependencies)
        return func
    return wrapper