didn't test but just read my email thread. i got problem when the http request has http header of 'Accept: text/json'.
Just quickly check the HTTP Header definition:
The Accept request-header field can be used to specify certain media types which are acceptable for the response. Accept headers can be used to indicate that the request is specifically limited to a small set of desired types, as in the case of a request for an in-line image.
The Content-Type entity-header field indicates the media type of the entity-body sent to the recipient or, in the case of the HEAD method, the media type that would have been sent had the request been a GET.
It seems to me the withFormat should use 'Accept' rather than 'Content-Type' to determine response. Accept means, the client ask for content of particular type, but 'content-type' refers to the content-type that is being sent in the request. it doesn't hurt to support 'content-type' but it shouldn't ignore 'accept'