#include <cstdio>
#include <map>
using namespace std;

int n,k,a,b,minim;
int A[10000][10000];
//a=nou
//b=vechi
void cit()
{
    int u,v;
    scanf("%d%d%d%d",&n,&k,&a,&b);
    minim=b;
    for (int i=0;i<=k;++i)
    {
        scanf("%d%d",&v,&u);
        A[u][v]=a;
        A[v][u]=a;
    }
    if ((A[1][n]!=0 ? A[1][n]:minim)<minim)
            minim=a;
    for (int u=1;u<=n;++u)
        for (int v=1;v<=n;++v)
        {
            if (  (A[1][v]!=0 ? A[1][v]:b) + (A[u][n]!=0 ? A[u][n]:b) + (A[u][n]!=0 ? A[u][n]:b) < minim)
            {
                minim=(A[1][v]!=0 ? A[1][v]:b) + (A[u][n]!=0 ? A[u][n]:b) + (A[u][n]!=0 ? A[u][n]:b);
            }
        }
}


int main()
{
    //freopen("inter.in","r",stdin);
    cit();
    printf("%d",minim);
    return 0;
}