public String stringRouteSourceToTarget (String source, String target) {
		
		if (this.negCircle) {
			return "ERROR:1001:NEG Circle";	
		}
		
		int idxSource = -1;
		int idxTarget = -1;
		for (int i = 0; i < this.listOfVertices.size(); i++) {
			if (this.listOfVertices.get(i).equals(source)) {
				idxSource = i;
			} else if (this.listOfVertices.get(i).equals(target)) {
				idxTarget = i;
			}
		}
		
		if (idxSource >= 0 && idxTarget >= 0) {
			int dist = D[idxSource][idxTarget];
			if (dist == Integer.MAX_VALUE) {
				return "ERROR:1000:No route from "+this.listOfVertices.get(idxSource)
						+" to "+this.listOfVertices.get(idxTarget);
			}
			
			String ret = this.listOfVertices.get(idxSource);
			ret = ret + "#" + recursive(idxSource, idxTarget);			
			ret = ret + "#" + this.listOfVertices.get(idxTarget);
			ret = ret + "#" + dist;
			
			return ret;
		}
		
		return "ERROR:1002:Start or Target unknown";
	}