code: func StronglyConnectedComponents(nodes []Node, excludeSingle bool) [][]Node {
  	acct := sccAcct{
  		ExcludeSingle: excludeSingle,
  		NextIndex:     1,
  		NodeIndex:     make(map[Node]int, len(nodes)),
  	}
  	for _, node := range nodes {
  		// Recurse on any non-visited nodes
  		if acct.NodeIndex[node] == 0 {
  			stronglyConnected(&acct, node)
  		}
  	}
  	return acct.SCC
  }
docs: // StronglyConnectedComponents implements Tarjan's algorithm to
  // find all the strongly connected components in a graph. This can
  // be used to detected any cycles in a graph, as well as which nodes
  // partipate in those cycles. excludeSingle is used to exclude strongly
  // connected components of size one.