@SuppressWarnings("unused")
  private static Graph firstPass(Graph graph) {

    boolean removed = true;
    while (removed) {
      removed = false;

      List<String> vertices = graph.getVertices();

      Set<String> remove = new HashSet<String>();
      for (int x = 0; x < graph.size(); x++) {
        Set<Integer> reached = GraphUtils.searchForward(graph, x);
        reached.addAll(GraphUtils.searchBackward(graph, x));

        if (reached.size() < GraphUtils.CANDIDATE_CUTOFF) {
          remove.add(vertices.get(x));
        }
      }

      System.out.println(remove.size());
      if (remove.size() > 0) {
        removed = true;
        vertices.removeAll(remove);

        graph = GraphMaker.makeGraph(vertices, TEMP_NAME);
      }
    }

    return graph;
  }