private TreeNode recursiveIterator(TreeNode currentNode, String currentWord) {
		if (foundDialogue || currentNode == null || currentNode.isTempVisited()) {
			return currentNode;
		}
		List<TreeNode> children = currentNode.getChildren();
		currentNode = checkChildrenForKeyWords(currentNode, currentWord);

		for (TreeNode child : children) {
			// accessible children
			if ((!child.isTempVisited()) && child.isVisited()) {
				currentNode = recursiveIterator(child, currentWord);
			}
		}
		if (!foundDialogue) {
			currentNode = recursiveIterator(currentNode.getParent(),
					currentWord);
		}
		return currentNode;
	}