@staticmethod
    def reachable(node, adjacencyList, followOnAdjacencyList=None):
        """
        Find the set of nodes reachable from this node (including the node). 
        Return is a set of integers. 
        """
        visited = set()

        def dfs(fNode):
            if fNode not in visited:
                visited.add(fNode)
                for tNode in adjacencyList[fNode]:
                    dfs(tNode)
                if followOnAdjacencyList != None:
                    for tNode in followOnAdjacencyList[fNode]:
                        dfs(tNode)

        dfs(node)
        return visited
dataset/ETHPy150Open BD2KGenomics/toil/src/toil/test/src/jobTest.py/JobTest.reachable/original