code: public void depthFirst(Map<String, Object> options, Closure c) {
          boolean preorder = Boolean.valueOf(options.get("preorder").toString());
          if (preorder) callClosureForNode(c, this, 1);
          depthFirstRest(preorder, 2, c);
          if (!preorder) callClosureForNode(c, this, 1);
      }
docs: Provides a collection of all the nodes in the tree
  using a depth-first traversal.
  A boolean 'preorder' options is supported.
  
  @param options map containing options
  @param c the closure to run for each node (a one or two parameter can be used; if one parameter is given the
  closure will be passed the node, for a two param closure the second parameter will be the level).
  @since 2.5.0