private Path nearestPath(String s){
		List<Path> potential = new ArrayList<Path>();
		List<Path> next = new ArrayList<Path>();
		
		TrieNode node = getNode(s);
		
		//That node doesn't exist.
		if(node == null) return null;
		
		Path top = new Path(node);
		potential.add(top);
		
		
		while(!potential.isEmpty()){
			for(Path p : potential){
				if(p.getNode().isWord()){
					//Success! We're a valued node!
					return p;
				} else{
					//We have potential paths under us, even if we're not successful.
					//So, add those potential paths. If we have no children, this path
					//will just be ignored.  But WTF, how did we get a null at the
					//leaf of the tree?
					for(Entry<Character, TrieNode> entry : p.getNode().getChildMap().entrySet()){
						Character c = entry.getKey();
						TrieNode child = entry.getValue();
						Path q = new Path(p, child, c);
						next.add(q);
					}
				}
			}
			//Move next into potential.
			potential.clear();
			potential.addAll(next);
			next.clear();
		}
		//This will occur when some moron puts null values in our leaves
		return null;
	}