docs: public Object methodMissing(String tagName, Object args) throws IOException {
          Object o = model.get(tagName);
          if (o instanceof Closure) {
              if (args instanceof Object[]) {
                  yieldUnescaped(((Closure) o).call((Object[])args));
                  return this;
              }
              yieldUnescaped(((Closure) o).call(args));
              return this;
          } else if (args instanceof Object[]) {
              final Writer wrt = out;
              TagData tagData = new TagData(args).invoke();
              Object body = tagData.getBody();
              writeIndent();
              wrt.write('<');
              wrt.write(tagName);
              writeAttributes(tagData.getAttributes());
              if (body != null) {
                  wrt.write('>');
                  writeBody(body);
                  writeIndent();
                  wrt.write("</");
                  wrt.write(tagName);
                  wrt.write('>');
              } else {
                  if (configuration.isExpandEmptyElements()) {
                      wrt.write("></");
                      wrt.write(tagName);
                      wrt.write('>');
                  } else {
                      wrt.write("/>");
                  }
              }
          }
          return this;
      }