docs: function(hints, path) {
  	console.log("Matching " + path.join(".") + " against ", hints);
  	var specificity = Infinity;
  	var match = null;
  	for (var hint in hints) {
  		if (hint === path.join(".")) {
  			console.log("Hint for '" + path.join(".") + "': " + hints[hint]);
  			return hints[hint];
  		}
  		else {
  			var hintParts = hint.split(".");
  			var len = hintParts.length;
  			if (len !== path.length) {
  				continue;
  			}
  
  			var hintSpecificity = 0;
  			for (var i = 0; i < len; i++) {
  				var hintPart = hintParts[i];
  				if (hintPart === "*") {
  					hintSpecificity += 1;
  				}
  				else if (path[i] !== hintPart) {
  					break;
  				}
  				if (i + 1 === len && hintSpecificity < specificity) {
  					specificity = hintSpecificity;
  					match = hints[hint];
  				}
  			}
  		}
  	}
  	console.log("Hint for '" + path.join(".") + "': " + match);
  	return match;
  }