# File lib/ruote/exp/fe_await.rb, line 284
    def reply(workitem)

      #
      # :where guard

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

      #
      # merge

      wi = h.applied_workitem.dup

      wi['fields'] =
        case h.amerge
          when 'ignore', 'drop' then wi['fields']
          when 'incoming' then wi['fields'].merge(workitem['fields'])
          when 'awaiting' then workitem['fields'].merge(wi['fields'])
          else workitem['fields'] # 'override'
        end

      #
      # actual trigger

      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