#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
long long fac[N], invfac[N];
const long long mod = 1e9 + 7;
long long qpow(long long a, long long k) {
  long long res = 1;
  while (k) {
    if (k & 1) res = (res * a) % mod;
    a = (a * a) % mod;
    k >>= 1;
  }
  return res;
}
void init() {
  fac[0] = 1, invfac[0] = 1;
  fac[1] = 1, invfac[1] = 1;
  for (long long x = 2; x < N; ++x) {
    fac[x] = (fac[x - 1] * x) % mod;
    invfac[x] = qpow(fac[x], mod - 2);
  }
}
long long C(int n, int m) {
  if (n < 0 || m < 0 || n < m)
    return 0;
  else if (n == m)
    return 1;
  else
    return fac[n] * invfac[m] % mod * invfac[n - m] % mod;
}
pair<int, int> p[2005];
inline bool cmp(const pair<int, int>& a, const pair<int, int>& b) {
  return a.first + a.second < b.first + b.second;
}
long long cal(pair<int, int> a, pair<int, int> b) {
  int x = b.first - a.first, y = b.second - a.second;
  return C(x + y, x);
}
long long dp[2005][25];
int main(int argc, const char* argv[]) {
  init();
  int n, m, k, s;
  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);
  }
  p[0] = pair<int, int>(1, 1);
  p[++k] = pair<int, int>(n, m);
  sort(p, p + k + 1, cmp);
  dp[0][0] = 1, dp[1][0] = cal(p[0], p[1]);
  for (int i = 2; i <= k; ++i) {
    dp[i][0] = cal(p[0], p[i]);
    for (int j = 1; j < i; ++j) {
      dp[i][0] = (dp[i][0] - dp[j][0] * cal(p[j], p[i]) % mod + mod) % mod;
    }
  }
  for (int i = 1; i <= 20; ++i) {
    for (int j = 0; j <= k; ++j) {
      dp[j][i] = cal(p[0], p[j]);
      for (int l = 0; l < i; ++l) {
        dp[j][i] = (dp[j][i] - dp[j][l] + mod) % mod;
      }
      for (int l = 1; l < j; ++l) {
        dp[j][i] = (dp[j][i] - dp[l][i] * cal(p[l], p[j]) % mod + mod) % mod;
      }
    }
  }
  long long ans = 0, tot = cal(p[0], p[k]);
  for (int i = 0; i <= 20; ++i, s = (s + 1) / 2) {
    ans = (ans + dp[k][i] * s % mod) % mod;
    tot = (tot - dp[k][i] + mod) % mod;
  }
  ans = (ans + tot) % mod;
  ans = ans * qpow(cal(p[0], p[k]), mod - 2) % mod;
  printf("%lld\n", ans);
  return 0;
}
