public Vector<String> findPath() throws ActorNotFoundException, EmptyQueueException {
		
		//Check that the actor to start from exists.
		if(actors.containsKey(startingNode)){
			q.enqueue(actors.get(startingNode));
			actors.get(startingNode).setVisited(true);
		} else {
			throw new ActorNotFoundException("There is no record of an actor called: " + startingNode);
		}
		
		while(!q.isEmpty()){		
			Actor currentNode;
			currentNode = q.dequeue();
			
			//Check if the node removed from the queue is the target node.
			if(currentNode.getName().equals(ENDING_NODE)) {
				return tracePath(currentNode);	
			} else {	
				for(Movie m : currentNode.getMovieAppearances()){
					if(!m.isVisited()){
						Vector<Actor> cast = m.getCast();	
						m.setVisited(true);
						
						/*For every actor who has been in a film with the node currently being examined,
						 *check if actor has been visited. If not add it to the queue of nodes to look through.
						 */
						for(Actor a : cast){
							if(!a.isVisited()){
								a.setVisited(true);
								a.setBaconNumber(currentNode.getBaconNumber() + 1);
								a.setPrev(currentNode);
								q.enqueue(a);
							}		
						}
					} else {
						continue;
					}
				}
			}
		}
		return null;
	}