<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def cases(self, env, data):
        '''Calls each nested handler until one of them returns nonzero result.

        If any handler returns `None`, it is interpreted as 
        "request does not match, the handler has nothing to do with it and 
        `web.cases` should try to call the next handler".'''
        for handler in self.handlers:
            env._push()
            data._push()
            try:
                result = handler(env, data)
            finally:
                env._pop()
                data._pop()
            if result is not None:
                return result