support multiple `Serializer` instances bound with different encoders
update tests