code: public static Converter<String,String> replaceDataReferencesConverter(final Map<String, Map<String, String>> data,
                                                                            final Converter<String, String> converter, final boolean failOnUnexpanded){
          return s -> replaceDataReferencesInString(s, data, converter, failOnUnexpanded);
      }
docs: Return a converter that can expand the property references within a string
  @param data property context data
  @param converter secondary converter to apply to property values before replacing in a string
  @param failOnUnexpanded if true, fail if a property value cannot be expanded
  @return a Converter to expand property values within a string