code: def _find_routeable_attributes(obj, keys):
      
      for attr in keys:
          matches = ROUTABLE_NAME_REGEX.match(attr)
          if matches is None:
              continue
          try:
              val = getattr(obj, attr)
          except AttributeError:
              continue
  
          if not callable(val) or val.__doc__ is None:
              continue
  
          method_name = matches.group(1).upper()
          yield val, method_name
docs: From the set of provided `keys`, this function yields the attributes
      of `obj` that fulfill the requirements of 'routeable':
      * callable
      * matched by ROUTABLE_NAME_REGEX
      * has docstring