code: def _feasibility(node1, node2, graph_params, state_params):
      """Given a candidate pair of nodes u and v from G1 and G2 respectively, checks if it's feasible to extend the
      mapping, i.e. if u and v can be matched.
  
      Notes
      -----
      This function performs all the necessary checking by applying both consistency and cutting rules.
  
      Parameters
      ----------
      node1, node2: Graph node
          The candidate pair of nodes being checked for matching
  
      graph_params: namedtuple
          Contains all the Graph-related parameters:
  
          G1,G2: NetworkX Graph or MultiGraph instances.
              The two graphs to check for isomorphism or monomorphism
  
          G1_labels,G2_labels: dict
              The label of every node in G1 and G2 respectively
  
      state_params: namedtuple
          Contains all the State-related parameters:
  
          mapping: dict
              The mapping as extended so far. Maps nodes of G1 to nodes of G2
  
          reverse_mapping: dict
              The reverse mapping as extended so far. Maps nodes from G2 to nodes of G1. It's basically "mapping" reversed
  
          T1, T2: set
              Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes that are not in the mapping, but are
              neighbors of nodes that are.
  
          T1_out, T2_out: set
              Ti_out contains all the nodes from Gi, that are neither in the mapping nor in Ti
  
      Returns
      -------
      True if all checks are successful, False otherwise.
      """
      G1 = graph_params.G1
  
      if _cut_PT(node1, node2, graph_params, state_params):
          return False
  
      if G1.is_multigraph():
          if not _consistent_PT(
              node1, node2, graph_params, state_params
          ):
              return False
  
      return True
  
file_path: networkx/networkx/algorithms/isomorphism/vf2pp.py
imports: import collections
  import networkx
label_desc: Use image node_id 9 for calling a global function with example usage: _feasibility(node1, node2, graph_params, state_params) and returns: True, False, False