An adaptive WEM algorithm for solving elliptic boundary value problems in fairly general domains