@Override
    public List<IntersectRegion> parse(ParsingContext context) throws ModuleParsingException {
      String name = context.getElement().getAttributeValue("name");

      List<RegionModule> regions = new ArrayList<>();
      for (Element element : context.getElement().getChildren()) {
        regions.addAll(
            new RegionBuilder()
                .parse(element, new BuilderContext(BuildPhase.ANY).register(context.getMap())));
      }

      if (regions.size() < 2) {
        throw new ModuleParsingException(
            IntersectRegion.class, "IntersectRegions require at least 2 regions");
      }

      return Lists.newArrayList(new IntersectRegion(name, regions));
    }