Repository: eclipse-zenoh/zenoh (language: rust)

Issue:
Routing regression
### Describe the bug

In some situation routing does not work properly and the following warning appears:
```
WARN rx-0 ThreadId(14) zenoh::net::routing::hat::router::queries: Invalid KE reached the system: Invalid Key Expr `test**`: `*` and `**` may only be preceded an followed by `/` at commons/zenoh-keyexpr/src/key_expr/borrowed.rs:648.
```


### To reproduce

```
> RUST_LOG=WARN z_sub -m router -k test/** &
> RUST_LOG=WARN z_queryable -m router -k test/aa/router -l tcp/127.0.0.1:7448 -e tcp/127.0.0.1:7447 &
> RUST_LOG=WARN z_get -m client -e tcp/127.0.0.1:7447 -s test/** -t ALL
```

### System info

Zenoh version 1.2.0


Discussion / hints:

Fix patch:
diff --git a/zenoh/src/net/routing/dispatcher/resource.rs b/zenoh/src/net/routing/dispatcher/resource.rs
index 010495f84..38499451d 100644
--- a/zenoh/src/net/routing/dispatcher/resource.rs
+++ b/zenoh/src/net/routing/dispatcher/resource.rs
@@ -550,7 +550,7 @@ impl Resource {
             if suffix.is_empty() {
                 return None;
             }
-            let (chunk, remain) = suffix.split_once('/').unwrap_or((suffix, ""));
+            let (chunk, remain) = suffix.split_at(suffix.find('/').unwrap_or(suffix.len()));
             let child = prefix.children.get(chunk)?;
             get_best_child_key(child, remain, sid)
                 .or_else(|| get_wire_expr(child, || remain.into(), sid))


Test patch: