private boolean concatHelper(String curWord, int startIndex, int length) {
		if (startIndex >= length) {
			return true;
		}
		TrieNode curNode = root;
		for (int i = startIndex; i < length; i++) {
			char curChar = curWord.charAt(i);
			HashMap<Character, TrieNode> children = curNode.getChildren();
			if (children.containsKey(curChar)) {
				curNode = children.get(curChar);
				if (curNode.getIsEnd()) {
					// This is to avoid self construct
					if (startIndex == 0 && i == length - 1)
						return false;
					if (concatHelper(curWord, i + 1, length))
						return true;
				}
			} else
				return false;
		}
		return false;
	}