#include <bits/stdc++.h>
using namespace std;
int n, m, k, s;
int fac[200010], inv[200010], fac_inv[200010];
int dp[200010][21];
pair<int, int> p[200010];
int C(int x, int y) {
  if (x < y) return 0;
  if (y == 0) return 1;
  if (x == 0) return 0;
  return (1ll * fac[x] * fac_inv[y] % 1000000007) * fac_inv[x - y] % 1000000007;
}
int f(int x) { return (x + 1) >> 1; }
int Power(int a, int P) {
  int tmp = 1;
  while (P) {
    if (P & 1)
      P ^= 1, tmp = 1ll * tmp * a % 1000000007;
    else
      P >>= 1, a = 1ll * a * a % 1000000007;
  }
  return tmp;
}
int main() {
  fac[0] = 1;
  for (int i = 1; i < 200010; i++) fac[i] = 1ll * fac[i - 1] * i % 1000000007;
  inv[0] = inv[1] = 1;
  for (int i = 2; i < 200010; i++)
    inv[i] =
        1ll * inv[1000000007 % i] * (1000000007 - 1000000007 / i) % 1000000007;
  fac_inv[0] = 1;
  for (int i = 1; i < 200010; i++)
    fac_inv[i] = 1ll * fac_inv[i - 1] * inv[i] % 1000000007;
  bool flag = false;
  scanf("%d%d%d%d", &n, &m, &k, &s);
  for (int i = 1; i <= k; i++) {
    scanf("%d%d", &p[i].first, &p[i].second);
    if (p[i].first == n && p[i].second == m) s = f(s), flag = true;
  }
  if (!flag) p[++k] = make_pair(n, m);
  sort(p + 1, p + k + 1);
  int Ans = C(n + m - 2, n - 1);
  for (int v = 0; v <= 20; v++) {
    for (int i = 1; i <= k; i++) {
      dp[i][v] = C(p[i].first + p[i].second - 2, p[i].first - 1);
      for (int j = 1; j < i; j++)
        if (p[j].first <= p[i].first && p[j].second <= p[i].second)
          dp[i][v] = (dp[i][v] -
                      1ll * dp[j][v] *
                          C(p[i].first - p[j].first + p[i].second - p[j].second,
                            p[i].first - p[j].first) %
                          1000000007) %
                     1000000007;
      for (int j = 0; j < v; j++) dp[i][v] = (dp[i][v] - dp[i][j]) % 1000000007;
      if (dp[i][v] < 0) dp[i][v] += 1000000007;
    }
    if (s == 1) break;
    Ans = (Ans + 1ll * dp[k][v] * (s - 1) % 1000000007) % 1000000007;
    s = f(s);
  }
  Ans = 1ll * Ans * Power(C(n + m - 2, m - 1), 1000000007 - 2) % 1000000007;
  printf("%d\n", Ans);
  return 0;
}
