code: public static Map<String, Object> replaceDataReferences(
              final Map<String, Object> input,
              final Map<String, Map<String, String>> data
      )
      {
          return replaceDataReferences(input, data, null, false, false);
      }
docs: Recursively replace data references in the values in a map which contains either string, collection or Map
  values.
  
  @param input input map
  @param data  context data
  
  @return Map with all string values having references replaced