set(val) method in can.map.define invoked twice on initial page load, first time with proper val, and second with [""]
Fortunately there is already an example, in docs :)
Try to load
http://canjs.com/can/route/docs/map.html#!&locationIds=1%2C2%2C3and locationIds prop always end up empty.