@Override
	public String Prune(Data data, HashMap<String, String> decisions) {
		boolean containsAttributeNode = false;
		for (String attributeValue : copySet(children.keySet())) {
			Node child = children.get(attributeValue);
			if (child instanceof AttributeNode) {
				HashMap<String, String> newDescisions = copyHashMap(decisions);
				newDescisions.put(attribute, attributeValue);
				String newNodeValue = child.Prune(data, newDescisions);
				if (newNodeValue!=null) {
					children.remove(attributeValue);
					children.put(attributeValue, new GoalNode(newNodeValue));
				} else {
					containsAttributeNode = true;
				}
			}
		}

		if (!containsAttributeNode) {
			return data.chi2(decisions);
		}
		return null;
	}