this.state.route cannot get custom error in validate
```
function makeSpecExposer(spec) {
  var defn = clone.clonePrototype(spec);
  return function* specExposer(next) {
    this.state.route = defn;
    yield* next;
  };
}
```

Why use clone to expose specs? It will produce some trouble like 'custom error will transform to undefined'.
