#include<bits/stdc++.h>
using namespace std;
const long long skc=1e9+7;
int n,m,i,x,y,t,tot,top,cnt,k,vis[100],j,e[100],fa[100],dep[100],r[100],gg[100][100],w[500001],color[500001],d[500001],nxt[1000001],to[1000001],head[500001],dfn[500001],low[500001];
long long ans,sum,f[500001][2];
vector<int>v[500001];
long long pow(long long x,long long y,const long long skc){
    long long s=1;
    for(;y;y>>=1,x=x*x%skc)if(y&1)s=s*x%skc;
    return s;
}
void add(int x,int y){
    nxt[t]=head[x];to[t]=y;head[x]=t++;
}
void tarjan(int x,int y){
    dfn[x]=low[x]=++tot;d[++top]=x;
    for(int i=head[x];~i;i=nxt[i]){
        if(!dfn[to[i]])tarjan(to[i],i),low[x]=min(low[x],low[to[i]]);
        else if((i^1)!=y)low[x]=min(low[x],dfn[to[i]]);
    }
    if(dfn[x]==low[x]){
        cnt++;
        int u;
        do{
            u=d[top];
            top--;
            color[u]=cnt;
            w[cnt]++;
        }while(u!=x);
    }
}
void dfs(int x,int y){
    e[x]=++t;dep[x]=dep[y]+1;fa[x]=y;
    for(int i:v[x])if(i!=y)dfs(i,x);
}
int lca(int x,int y){
    if(x==y)return x;
    if(dep[x]>dep[y])swap(x,y);
    if(gg[x][y])return gg[x][y];
    return gg[x][y]=lca(x,fa[y]);
}
int main(){
    freopen("barrack.in","r",stdin);
    freopen("barrack.out","w",stdout);
    ios::sync_with_stdio(0);cin.tie(0);
    cin>>n>>m;
    memset(head,-1,sizeof head);
    for(i=1;i<=m;i++)cin>>x>>y,add(x,y),add(y,x);
    tarjan(1,-1);
    long long tmp=1;
    for(i=1;i<=n;i++)for(int j=head[i];~j;j=nxt[j])if(i<to[j]){
        if(color[i]==color[to[j]])tmp=tmp*2%skc;
        else v[color[i]].push_back(color[to[j]]),v[color[to[j]]].push_back(color[i]);
    }
    dfs(1,0);
    for(i=1;i<1<<n;i++){
        memset(vis,0,sizeof vis);
        for(j=1;j<=n;j++)if(i>>(j-1)&1)vis[color[j]]=1;
        k=0;sum=0;
        for(j=1;j<=cnt;j++)if(vis[j]==1)r[++k]=j;
        sort(r+1,r+k+1,[&](int x,int y){return e[x]<e[y];});
        for(j=1;j<=k;j++)sum=sum+dep[r[j]]+dep[r[j%k+1]]-2*dep[lca(r[j],r[j%k+1])];
        sum/=2;
        ans+=pow(2,m-sum,skc);
    }
    cout<<ans%skc<<"\n";
}