Same as with Array: use encoder to check for circular refs if present, but do not `options[:encoder] ||= ...`