docs: public static Map<String, List<Map<String, Object>>> nest(Map<String, Object> map, String... keys) {
          Map<String, List<Map<String, Object>>> result = new HashMap<String, List<Map<String, Object>>>(keys.length);
          String keyMatch = "";
          for (String key : keys) {
              result.put(key, new ArrayList<Map<String, Object>>());
              keyMatch = MessageFormat.format("{0}{1}|", keyMatch, Pattern.quote(key));
          }
          String patternString = MessageFormat.format("^({0})\\.([0-9]*)\\.(.*)", keyMatch.substring(0, keyMatch.length() - 1));
          Pattern pattern = Pattern.compile(patternString);
          for (Map.Entry<String, Object> entry : map.entrySet()) {
              String k = entry.getKey();
              Matcher matcher = pattern.matcher(k);
              if (matcher.matches()) {
                  int base = 1;
                  String key = matcher.group(1);
                  processMatch(result.get(key), entry.getValue(), matcher, base);
              }
          }
          return result;
      }