fix: make GraphModel#merge handle empty input
feat: highlight selected node