message: Built null route if encoded blank value
  Routes params can't accept blank encoded values. There's no way to tell if the value is blank because it's encoded as blank or just not provided. In the first case want to call decode but not in the second
diff: @@ -59,9 +59,16 @@ class Route {
  data = data || {};
  var route = '';
  var optional = true;
  + var blankEncoded = false;
  for (var i = this.segments.length - 1; i >= 0; i--) {
  var segment = this.segments[i];
  - var pathInfo = segment.build(data, this.defaults, (name, val) => urlEncode(this, name, val));
  + var pathInfo = segment.build(data, this.defaults, (name, val) => {
  + var encodedValue = urlEncode(this, name, val);
  + blankEncoded = blankEncoded || !encodedValue;
  + return encodedValue;
  + });
  + if (blankEncoded)
  + return null;
  optional = optional && pathInfo.optional;
  if (!optional) {
  if (pathInfo.path == null)
  