The answer is this:
[assembly: RegisterApiController(typeof(LiveTileController))]
The reason is, as is the norm, that .NET searches the assemblies for anything deriving in APIController when routes are registered. Because of the many CMS assemblies, it was very inefficient to search them all for APIControllers.
http://devnet.kentico.com/questions/web-api-routes-failing-v8-1-4