code: void normalizeDependencies() {
  		if (defineDependencies != null) {
  			LinkedHashSet<String> temp =  new LinkedHashSet<String>(Arrays.asList(PathUtil.normalizePaths(getParentPath(), defineDependencies)));		// normalize and remove dups
  			defineDependencies = temp.toArray(new String[temp.size()]);
  		}
  		if (requireDependencies != null) {
  			LinkedHashSet<String> temp =  new LinkedHashSet<String>(Arrays.asList(PathUtil.normalizePaths(getParentPath(), requireDependencies)));		// normalize and remove dups
  			requireDependencies = temp.toArray(new String[temp.size()]);
  		}
  		if (children != null) {
  			for (Entry<String, DepTreeNode> entry : children.entrySet()) {
  				entry.getValue().normalizeDependencies();
  			}
  		}
  	}
docs: Normalizes any module names in this node's dependency list
  (i.e. removes ./ and ../ path components) so that all the dependency
  names are based on this node's parent path.  For example, if a child
  node has the dependency {@code ../bar} and this node's parent path
  is {@code foo}, then the normalized dependency will be
  {@code foo/bar}.
  <p>
  Recursively calls itself for all this node's children so that the
  entire tree rooted at this node is normalized.