# File lib/ruote/exp/fe_listen.rb, line 262
    def reply(workitem)

      #
      # :where guard

      where = attribute(:where, workitem)
      return if where && Condition.false?(where)

      #
      # green for trigger

      wi = h.applied_workitem.dup

      if h.lmerge == 'true'
        wi['fields'].merge!(workitem['fields'])
      elsif h.lmerge == 'override'
        wi['fields'] = workitem['fields']
      #else don't touch
      end

      if tree_children.any?

        i, t = if tree_children.size == 1
          [ "#{h.fei['expid']}_0", tree_children[0] ]
        else
          [ h.fei['expid'], [ 'sequence', {}, tree_children ] ]
        end

        launch_sub(i, t, :forget => true, :workitem => wi)

      else

        reply_to_parent(wi)
      end
    end