router can be null if the pipe is Destroyed

getRouter(int) returns null on int<=0 anyway, so no computational or
logicat inefficiency here.