code: def iter_endpoints(graph, match_func):
      
      for rule in graph.flask.url_map.iter_rules():
          try:
              operation, ns = Namespace.parse_endpoint(rule.endpoint, get_converter(rule))
          except (IndexError, ValueError, InternalServerError):
              # operation follows a different convention (e.g. "static")
              continue
          else:
              # match_func gets access to rule to support path version filtering
              if match_func(operation, ns, rule):
                  func = graph.flask.view_functions[rule.endpoint]
                  yield operation, ns, rule, func
docs: Iterate through matching endpoints.
  
      The `match_func` is expected to have a signature of:
  
          def matches(operation, ns, rule):
              return True
  
      :returns: a generator over (`Operation`, `Namespace`, rule, func) tuples.