docs: def __embed_branch(dfs_data):
      """Builds the combinatorial embedding of the graph. Returns whether the graph is planar."""
      u = dfs_data['ordering'][0]
      dfs_data['LF'] = []
      dfs_data['RF'] = []
      dfs_data['FG'] = {}
      n = dfs_data['graph'].num_nodes()
      f0 = (0, n)
      g0 = (0, n)
      L0 = {'u': 0, 'v': n}
      R0 = {'x': 0, 'y': n}
      dfs_data['LF'].append(f0)
      dfs_data['RF'].append(g0)
      dfs_data['FG'][0] = [L0, R0]
      dfs_data['FG']['m'] = 0
      dfs_data['FG']['l'] = 0
      dfs_data['FG']['r'] = 0
  
      #print 'DFS Ordering: {}'.format(dfs_data['ordering'])
      #for node in dfs_data['ordering']:
          #print '{}: {}'.format(node, dfs_data['adj'][node])
  
      nonplanar = __embed_branch_recursive(u, dfs_data)
  
      #print "Nonplanar:", nonplanar
  
      return not nonplanar