- if ($parent->call eq $call && ($parent->version ne $ver || $parent->flags != $flags)) {
- $parent->version($ver);
- $parent->flags($flags);
- push @rout, $parent;
- } elsif ($parent->call ne $call) {
- next if $call eq $main::mycall || $call eq $self->{call};
-
- my $r = $parent->add($call, $ver, Route::here($here)|Route::conf($conf));
- push @rout, $r if $r;
- } else {
- $r = Route::Node::get($call);
- if ($r && ($r->version ne $ver || $r->flags != $flags)) {
+ if ($r) {
+ my $ar;
+ if ($call ne $parent->call) {
+ if ($self->in_filter_route($r)) {
+ $ar = $parent->add($call, $ver, $flags);
+ push @rout, $ar if $ar;
+ } else {
+ next;
+ }
+ }
+ if ($r->version ne $ver || $r->flags != $flags) {