Hello! I'm new to Cadabra and recently I've noticed a strange behaviour of the function eliminate_metric.

Here is a simple code demonstrating this:

```
{\mu,\nu,\rho,\sigma,\kappa,\lambda,\alpha,\beta}::Indices(curved,position=free);
{\mu,\nu,\rho,\sigma,\kappa,\lambda,\alpha,\beta}::Integer(0..d-1);
g_{\mu\nu}::Metric;
g^{\mu\nu}::InverseMetric;
g_{\mu? \nu?}::Symmetric;
g^{\mu? \nu?}::Symmetric;
g^{\mu?}_{\nu?}::KroneckerDelta;
g_{\mu?}^{\nu?}::KroneckerDelta;
\Gamma_{#{\mu}}::GammaMatrix(metric=g);
ex := \Gamma^{\mu}\Gamma_{\mu} a+a;
join_gamma(ex);
distribute(ex);
eliminate_metric(ex);
```

What this code supposed to do is to perform simple gamma matrix calculations, paying no attention to a random variable "a". As a result, there should be a term "d * a". But, instead, I yield this

The function eliminate*metric somehow dropped away g*{\mu}^{\mu}.

Is it just my bad code or a real bug? I understand that the fix is to insert eliminate_kronecker, but I can't be sure that such a problem won't appear in another unexpected place.