public List<Integer> getPathFrom(Integer source) {
        if (source == null || !graph.getVertices().contains(source))
            return null;
        search(source);
        return path;
    }
This is traditional top-down approach to traverse graph. This is advantageous when the frontier is small
src/algo/graph/BFS.java