def unregister(name_or_participant)

      code = nil
      entry = nil
      list = get_list

      name_or_participant = name_or_participant.to_s

      entry = list['list'].find { |re, pa| name_or_participant.match(re) }

      return nil unless entry

      code = entry.last if entry.last.is_a?(String)

      list['list'].delete(entry)

      if r = @context.storage.put(list)
        #
        # put failed, have to redo it
        #
        return unregister(name_or_participant)
      end

      entry.first
    end
def unregister(name_or_participant)

      code = nil
      entry = nil
      list = get_list

      name_or_participant = name_or_participant.to_s

      entry = list['list'].find { |re, pa| name_or_participant.match(re) }

      return nil unless entry

      code = entry.last if entry.last.is_a?(String)

      list['list'].delete(entry)

      if r = @context.storage.put(list)
        #
        # put failed, have to redo it
        #
        return unregister(name_or_participant)
      end

      entry.first
    end
Removes a participant, given via its name or directly from this
 participant list.

 Called usually by Engine#unregister_participant.