For me, router.push({})
pushed a copy of the previous screen onto the stack. Mirroring the react-navigation docs linked by @love li studios, the answer was to use router.dismissTo()
import { useLocalSearchParams } from "expo-router";
...
const params = useLocalSearchParams();
useEffect(() => {
if (params?.selection) {
setSelectedCategory(params.selection);
}
}, [params]);
...
import { router } from "expo-router";
...
router.dismissTo({
pathname: "(app)/Energy",
params: {
selection: "My Selection",
},
});
...