21.12.0: Variable catching too much nodes

Hello,
I’m trying last release and I have simple queries that don’t work anymore.

Here is an example where I select 2 nodes in a variable, then return their uid and label (French words).

Query:

{
        var(func: uid("0xc356")) {
                ~source @filter(ge(count(~thinks_match), 2)) {
                        weight_match as count(~thinks_match)
                }
        }
        var1(func: uid(weight_match), orderdesc: val(weight_match), first:2) {
                pop as target { uid label }
        }
        me(func: uid(pop)) {
                uid
                label
        }
}

Response:

  "data": {
    "var1": [
      {
        "target": {
          "uid": "0x2e632",
          "label": "déesse"
        }
      },
      {
        "target": {
          "uid": "0x33454",
          "label": "croyance"
        }
      }
    ],
    "me": [
      {
        "uid": "0x9c45",
        "label": "dieu"
      },
      {
        "uid": "0x15f94",
        "label": "croire"
      },
      {
        "uid": "0x1d4c3",
        "label": "divin"
      },
      {
        "uid": "0x1fbd5",
        "label": "Grèce"
      },
      {
        "uid": "0x2e632",
        "label": "déesse"
      },
      {
        "uid": "0x33454",
        "label": "croyance"
      },
      {
        "uid": "0x46cdc",
        "label": "polythéisme"
      }
    ]
  },

As you can see, the var1 block returns correctly 2 nodes with 1 target predicate each, but when I use the pop variable I get 7 nodes instead of 2.