Is this against node.js coding conventions though, should the callback be last parameter? In which case, if options is moved before callback and remain optional, how to determine if rules or options parameter is missing, if both are same type?