def _dfs(self, start, target):
        stack = []
        seen = []
        stack.append(start)
        while len(stack) > 0:
            vertex = stack.pop()
            if vertex == target:
                return self[vertex]
            if vertex not in seen:
                seen.append(vertex)
                stack += self[vertex]['edges']
        if DEBUG:
            print(seen)
        return []
Typical stack based DFS algorithm, translated from
dataset/ETHPy150Open christabor/MoAL/MOAL/data_structures/graphs/graphs.py/Graph._dfs