def dispatch(self, *args, **kwargs):
        """
        Call handlers that match args or kwargs

        :return: set of handlers called
        """
        called_handlers = set()
        for handler_list in self.handlers.values():
            for handler, argspec in handler_list:
                accept_args, accept_kwargs = argspec.accepts
                if handler in called_handlers and False:
                    continue
                else:
                    if args_match(accept_args, accept_kwargs, self.default, *args, **kwargs):
                        called_handlers.add(handler)
                        handler(*args, **kwargs)
        
        return called_handlers
Call handlers that match args or kwargs

        :return: set of handlers called