'Call handlers until one returns a non-None value.
As with call, handlers are called in the same order they are
registered.  Only the return value of the first non-None handler is
returned.'

def call_until_return(self, **kwargs):

    for handler in self.handlers:
        ret = handler(**kwargs)
        if (ret is not None):
            return ret
