def group(prefix, name, options = {})
      subtree = self.class.new
      yield(subtree) if block_given?

      merge(subtree, prefix, name, options)
    end
def group(prefix, name, options = {})
      subtree = self.class.new
      yield(subtree) if block_given?

      merge(subtree, prefix, name, options)
    end
define a group of commands (subtree)
 the method will create a subtree and pass it to
 the given block of code if you passed a block
 otherwise it works in a similar way to register