class Sus::Tree
def traverse(current = @context, &block)
def traverse(current = @context, &block) node = {} node[:self] = yield(current) if children = current.children # and children.any? node[:children] = children.values.map do |context| self.traverse(context, &block) end end return node end