code: def find_matching_middleware(self, method, path):
          
          for mw in self.mw_list:
              if not mw.matches_method(method):
                  continue
  
              # get the path matching this middleware and the 'rest' of the url
              # (i.e. the part that comes AFTER the match) to be potentially
              # matched later by a subchain
              path_match, rest_url = mw.path_split(path)
              if self.should_skip_middleware(mw, path_match, rest_url):
                  continue
  
              yield mw, path_match, rest_url
docs: Iterator handling the matching of middleware against a method+path
          pair. Yields the middleware, and the