private boolean updateStateKeywordJump(List<Keyword> keywords) {
	if (keywords == null || keywords.isEmpty()) {
		return false;
	}
	//Check if all keywords pointing to same state, in one of their references (takes first state, if more than one state)
	else {
	/*	boolean sameRef = false;
		Enum<?> refMax = null;
		for (DialogState d : keywords.get(0).getReference()) {
			int count = 0;
			for (Keyword kw : keywords) {
				if (kw.getReference().contains(d)) {
					count++;
				}
				if (count == keywords.size()) {
					sameRef = true;
					refMax = d.getCurrentState();
				}
			}

		}
		if (sameRef) {
			getCurrentDialogState().setCurrentState(refMax);
			return true;
		}*/
		//If not go to keyword with highest priority
		//else {
			int priorityMax = keywords.get(0).getKeywordData().getPriority();
			Keyword curKW = keywords.get(0);
			DialogState curRef = keywords.get(0).getReference().get(0);
			for (Keyword kw : keywords) {
				for (DialogState d : kw.getReference()) {
				if (kw.getKeywordData().getPriority() > priorityMax) {
					curKW = kw;
					priorityMax = curKW.getKeywordData().getPriority();
					curRef = d;
				}
				//If the Keyword has a pointer to RA_* we should rate that higher since we're IN RA_
				if (d.getCurrentState().getClass().getName().equals("dm.RecipeAssistance")) {
					if (kw.getKeywordData().getPriority() + 3 > priorityMax) {
						curKW = kw;
						priorityMax = curKW.getKeywordData().getPriority() + 3;
						curRef = d;
					}
				}
				}
				}
			getCurrentDialogState().setCurrentState(curRef.getCurrentState());
			return true;
			}
		//}
}