Upon taking a closer look, it seems like this case is already caught. Which version of vibe.d are you using?

For GET w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.0 I get:

[160120F8:1601DDF8 dbg] path 'w00tw00t.at.blackhats.romanian.anti-sec:)' not starting with '/'
[160120F8:1601DDF8 dbg] no route match: GET w00tw00t.at.blackhats.romanian.anti-sec:)
[160120F8:1601DDF8 dia] No response written for w00tw00t.at.blackhats.romanian.anti-sec:)

And for GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.0:

[160120F8:1601DDF8 dbg] Path 'w00tw00t.at.blackhats.romanian.anti-sec:)' -> '/w00tw00t.at.blackhats.romanian.anti-sec:)'
[160120F8:1601DDF8 dbg] Path is absolute, not responding
[160120F8:1601DDF8 dbg] no route match: GET /w00tw00t.at.blackhats.romanian.anti-sec:)
[160120F8:1601DDF8 dia] No response written for /w00tw00t.at.blackhats.romanian.anti-sec:)