code: public static String expand(String keyString, Map properties) {
          String expandedLine = lineExpand(keyString, properties);
          if (resolvesToLiteral(expandedLine) || expandedLine.equals(keyString)) {
              return expandedLine;
          }
          return expand(expandedLine, properties);
      }
docs: expand a keyString that may contain references other properties
  located in provided Map object
  NOTE:  this is a recursive method in case references to properties are
  nested within another reference
  @return expanded
  @param keyString string
  @param properties properties