Períodos podem ser usados ​​em Rotas Asp.net Web Api?

Estou trabalhando na mudança de um projeto de API de manipuladores HTTP brutos em que estou usando períodos nos caminhos:

http://server/collection/id.format

Gostaria de seguir o mesmo esquema de URL em uma versão da Web Api (auto-hospedado) e tentei isso:

var c = new HttpSelfHostConfiguration(b);
c.Routes.MapHttpRoute(
    name: "DefaultApiRoute",
    routeTemplate: "{controller}/{id}.{format}",
    defaults: new { id = RouteParameter.Optional, format = RouteParameter.Optional },
    constraints: null
);

Infelizmente, isso não parece resolver (404 / on / foo / foo / bar e /foo/bar.txt) consistentes. Um padrão similar usando uma barra antes de 'format' funciona bem:

var c = new HttpSelfHostConfiguration(b);
c.Routes.MapHttpRoute(
    name: "DefaultApiRoute",
    routeTemplate: "{controller}/{id}/{format}",
    defaults: new { id = RouteParameter.Optional, format = RouteParameter.Optional },
    constraints: null
);

Ainda não investiguei o código da Web Api e, antes de pensar, gostaria de perguntar aqui se essa é uma limitação conhecida ou talvez justificada no Web Api.

ATUALIZAÇÃO: deixei de mencionar que "id" e "format" são strings, o que acaba sendo importante para a solução dessa questão. Adicionar uma restrição para excluir períodos do token "id" resolve o problema 404.

questionAnswers(5)

yourAnswerToTheQuestion