def replace(*attributes)
      attributes = safe_array(attributes)
      user_modification_guard
      seen = {}
      filtered = []
      attributes.each do |value|
        matchable = matchable(value)
        unless seen[matchable]
          filtered << value
          seen[matchable] = true
        end
      end
      @target.replace(filtered)
      self
    end
def replace(*attributes)
      attributes = safe_array(attributes)
      user_modification_guard
      seen = {}
      filtered = []
      attributes.each do |value|
        matchable = matchable(value)
        unless seen[matchable]
          filtered << value
          seen[matchable] = true
        end
      end
      @target.replace(filtered)
      self
    end
Does a complete replacement of the attributes.  Multiple attributes can
 be given as either multiple arguments or as an array.