#JavaScript (ES6), 108 bytes

Takes input as `(array)(n)`. Returns either an array or `false`.

<!-- language-all: lang-javascript -->

    a=>n=>a.reduce((a,x)=>[...a,...a.map(y=>1/r[(y=[...y]).push(x)]||eval(y.join`+`)-n?y:r=y)],[[]],r=!n&&[])&&r

[Try it online!](https://tio.run/##fZHfaoMwFMbv@xTZjSTsGGvrOjeIu9gDDAa7mQQaNPYPNpFklgp9d6dra0V0JyG5OOf35fvIXhyFTcyu@HGVTmWdsVqwSLFIUCPTMpEYCzgRFsWUUgHtQQ@iwBWLfM/Ezd02Kk5oUdotPhF@PsujyHFF93qn1o9r4qq36tWwinCIY87BsAflODEnjmPqRCurc0lzvcEZjn1YwBICeIIVPEMIL@DPOcH@nBDUlOeh2wifDdAFDFaPu6L31hTsdjtozkbBDVuFGzxoD1X63Kp7uatW5dJHH5/oMj3hJBjz0oa5xxgZQfhLJVuhNjIlQ90rP1Wtbp9H39Jo15YH9C6sJLORqEHzR27Y6C5Ho2Yit3LExfJ/F39Y/Qs "JavaScript (Node.js) – Try It Online")